package com.webcash.CNBoard.Service;

import java.util.List;

import com.webcash.CNBoard.Model.CreateWork;
import com.webcash.CNBoard.Model.Document;
import com.webcash.CNBoard.Model.Employee;
import com.webcash.CNBoard.Model.Project;
import com.webcash.CNBoard.Model.ProjectFile;
import com.webcash.CNBoard.Model.Work;
import com.webcash.CNBoard.Model.WorkDocFileTracer;
import com.webcash.CNBoard.Model.WorkInfoInProject;
import com.webcash.CNBoard.Model.WorkSearch;
import com.webcash.CNBoard.Model.WorkTracer;

public interface ProjectService {
	List<Work> getNewAllWorksById(String id);
	List<Project> getProjectListById(String id);
	List<Work> getWorkListByProjectNo(int projectNo, int pageNum);
	WorkInfoInProject getWorkListInfoByProjectNo(int projectNo);
	Project getProjectByProjectNo(int projectNo);
	List<Work> getProgressWorkListById(String id);
	String addCreateWorkByWorkAndProjectNo(CreateWork createWork, int projectNo, int docNo, int fileNo);
	Work getWorkByWorkNo(int workNo);
	List<Employee> getMemberByProjectNo(int projectNo);
	List<Work> getAllWorkListById(String id);
	List<Document> getDocumentListByProjectNo(int projectNo);
	void addDocumentByDoc(Document doc);
	String modifyCreateWorkByWorkAndProjectNo(CreateWork createWork,
			int projectNo, int workNo, int relationNo, int relationNo2, int docNo, int fileNo);
	WorkTracer getWorkTracerByDownerWorkNo(int workNo);
	Work getUpperWorkByDownerWorkNo(int workNo);
	int getWorkListCountByProjectNo(int projectNo);
	List<Work> getWorkListByProjectNo(int projectNo);
	int getWorkListCountByProjectNoAndWorkSearch(int projectNo,
			WorkSearch search);
	List<Work> getWorkListByProjectNoAndWorkSearch(int projectNo,
			WorkSearch search,  int pageNum);
	List<Work> getDownerWorkListByProjectNoAndWorkNo(int projectNo, int workNo);
	void addWorkWithUpperWork(int workNo, int projectNo, int upperWorkNo);
	WorkDocFileTracer getWorkDocFileTracerByWorkNo(int workNo);
	Document getDocumentByDocNo(int docNo);
	List<Work> getWorkTracerListByProjectNo(int projectNo);
	void removeDocumentByDocNo(int docNo);
	void removeWorkByWorkNo(int workNo);
	void addWorkWithDocument(int workNo, int projectNo, int docNo);
	void addWorkWithFile(int workNo, int projectNo, int fileNo);
	List<Work> getWorkListByProjectNoAndId(int projectNo, String id);
	
}
